﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace ASmile.Win
{
    public interface ILoginVerify
    {
        ApiResult LoginVerify(string loginName, string loginPwd);

        ApiResult VerifyRoleDept(string roleId, string deptId);
    }

    public static class UserLoginExtend
    {
        ///// <summary>
        ///// 通过配置文件的内容登陆进入系统
        ///// </summary>
        ///// <param name="runForm">程序允许的主窗口，为空则使用Main 主入口</param>
        //public static void LoginEnter()
        //{

        //    if (new FrmWait(LoginVerify, "正在登陆，请稍后。。。").ShowDialog() == DialogResult.OK)
        //    {
        //        var runForm = ObjectFactory.GetObject<Form>("Main.FrmMain");
        //        Application.Run(runForm);
        //    }

        //    void LoginVerify(Form c)
        //    {
        //        try
        //        {
        //            string loginName = ConfigHelper.GetAppSettings("LoginName");
        //            string loginPwd = ConfigHelper.GetAppSettings("LoginPwd");
        //            string roleId = ConfigHelper.GetAppSettings("RoleId");
        //            string deptId = ConfigHelper.GetAppSettings("DeptId");
        //            var loginVerify = ObjectFactory.GetObject<ILoginVerify>("LoginExtend");
        //            var ret = loginVerify.LoginVerify(loginName, loginPwd);
        //            if (ret)
        //            {
        //                ret = loginVerify.VerifyRoleDept(roleId, deptId);
        //            }
        //            if (ret)
        //            {
        //                Action<object> CloseHandle = (state) => 
        //                {
        //                    Form frm = state as Form;
        //                    frm.DialogResult = DialogResult.OK;
        //                };
        //                c.Invoke(CloseHandle, c);
        //            }
        //            else
        //            {
        //                MessageBox.Show(ret.msg);
        //                c.Close();
        //            }
        //        }
        //        catch (Exception ex)
        //        {
        //            LogHelper.LogObj.Error("自动登陆失败", ex);
        //            MessageBox.Show("自动登陆发生异常，" + ex.Message);
        //            Application.Exit();
        //        }
        //    }
        //}
    }
}